Skip to content

Ollama 常见命令与配置

本文档总结了 Ollama 的常用命令和环境变量,帮助你更好地使用和配置 Ollama。

常用命令

以下是一些常用的 Ollama CLI 命令:

  • ollama run <model_name>: 加载并运行指定的模型进行交互式对话。如果模型尚未下载,会自动下载。
    • 在运行模型时,可以使用 /set parameter <param_name> <value> 来临时调整参数,例如 /set parameter num_ctx 4096 来设置当前会话的上下文窗口。
  • ollama pull <model_name>: 从库中下载指定的模型。
  • ollama push <model_name>: 推送模型到库中(通常用于推送自定义模型)。
  • ollama listollama ls: 列出本地已下载的所有模型。
  • ollama ps: 显示当前正在运行(加载到内存中)的模型及其状态,包括内存占用、使用的处理器(CPU/GPU)以及空闲时间。
  • ollama stop <model_name>: 停止指定的模型并将其从内存中卸载。
  • ollama rm <model_name>: 从本地磁盘删除指定的模型。
  • ollama serve: 启动 Ollama 后台服务。通常在安装后会自动作为服务运行(macOS 应用、Linux systemd、Windows 服务)。
  • ollama cp <source_model> <destination_model>: 复制一个本地模型。
  • ollama show <model_name>: 显示模型的详细信息,包括 Modelfile 内容、参数等。

常用环境变量

Ollama 的行为可以通过环境变量进行配置。

  • OLLAMA_HOST: 设置 Ollama 服务监听的网络地址和端口。
    • 默认值: 127.0.0.1:11434
    • 示例: 0.0.0.0:11434 (允许来自网络的连接)
  • OLLAMA_MODELS: 指定 Ollama 存放下载模型和 Modelfile 的目录。
    • 默认位置因操作系统而异 (例如 ~/.ollama/models on Linux)。
  • OLLAMA_CONTEXT_LENGTH: 设置全局默认的上下文窗口大小(以 token 数量计)。模型可以覆盖此设置。
    • 默认值: 2048
    • 示例: 4096
  • OLLAMA_KEEP_ALIVE: 控制模型在没有收到请求后,在内存中保持加载状态的时长。
    • 默认值: 5m (5 分钟)
    • 示例: 30m (30 分钟), -1 (永久保持加载,直到手动停止或服务重启), 0 (请求完成后立即卸载)
  • OLLAMA_NUM_PARALLEL: 设置每个模型能够并行处理的最大请求数量。
    • 默认值: 根据可用内存自动选择(通常是 1 或 4)。
  • OLLAMA_MAX_LOADED_MODELS: 允许同时加载到内存中的最大模型数量,前提是内存足够。
    • 默认值: 根据 GPU 数量(3 * num_gpu)或 CPU 推理(3)自动计算。
  • OLLAMA_MAX_QUEUE: Ollama 服务在返回 "server busy" 错误前可以排队等待处理的最大请求数。
    • 默认值: 512
  • HTTPS_PROXY: 为 Ollama 配置 HTTPS 代理,用于下载模型等网络请求。
    • 示例: https://proxy.example.com:port
    • 注意: 通常不需要设置 HTTP_PROXY
  • OLLAMA_FLASH_ATTENTION: 设置为 1 以启用 Flash Attention(如果模型和硬件支持)。可以显著减少高上下文长度时的内存占用。
    • 默认值: 未设置 (禁用)
    • 示例: 1
  • OLLAMA_KV_CACHE_TYPE: 设置 K/V 上下文缓存的量化类型,以减少内存占用(尤其是在启用 Flash Attention 时)。
    • 默认值: f16 (全精度,内存占用最高)
    • 可选值: q8_0 (8 位量化,内存约为 f16 的 1/2,精度损失小), q4_0 (4 位量化,内存约为 f16 的 1/4,可能有较明显精度损失)。
  • CUDA_VISIBLE_DEVICES (NVIDIA GPUs): 控制 Ollama 可以看到和使用的具体 NVIDIA GPU 设备。这是一个标准的 NVIDIA 驱动环境变量。
    • 示例: 0 (只使用第一个 GPU), 1,2 (使用第二个和第三个 GPU), "" (不使用任何 GPU,强制 CPU,即使检测到 GPU)。
    • 用途: 隔离 GPU 资源,为特定任务分配 GPU,或进行测试。

如何配置环境变量

配置方法取决于你的操作系统和运行方式:

  • macOS (App): 使用 launchctl setenv OLLAMA_VARIABLE "value" 命令设置,然后重启 Ollama 应用。
  • Linux (systemd): 使用 systemctl edit ollama.service,在 [Service] 部分添加 Environment="OLLAMA_VARIABLE=value",然后运行 systemctl daemon-reload && systemctl restart ollama
  • Windows: 在"编辑系统环境变量"中为你的用户账户添加或修改环境变量,然后重启 Ollama 应用。
  • Docker: 在 docker run 命令中使用 -e OLLAMA_VARIABLE=value 参数。

并发处理与多卡推理

Ollama 支持并发请求处理和自动利用多个 GPU 进行推理。

并发请求

  • 并行处理: Ollama 可以同时处理多个请求。关键环境变量包括:
    • OLLAMA_NUM_PARALLEL: 控制单个模型实例能同时处理的最大请求数。默认自动选择。
    • OLLAMA_MAX_LOADED_MODELS: 允许同时加载到内存中的最大不同模型数量。默认根据 GPU 数量或 CPU 推理自动计算。
    • OLLAMA_MAX_QUEUE: 服务器繁忙时最大排队请求数,默认为 512

多卡推理

  • 自动处理: Ollama 会自动检测并使用所有可用的 GPU。
    • 如果模型能放入单个 GPU,则优先加载到该 GPU。
    • 如果模型太大无法放入单个 GPU,则自动分散到所有可用 GPU 上运行。
  • 无需特定配置: 用户通常不需要额外配置来启用多卡推理。确保 GPU 驱动程序正确安装即可。
  • OLLAMA_MAX_LOADED_MODELS 也会影响多卡环境,允许在不同 GPU 上并行加载多个模型(如果 VRAM 足够)。

参考来源: Ollama FAQ